news 2026/4/24 1:51:46

【C#程序员入门AI】环境一键搭建:.NET 8+AI开发环境(Semantic Kernel/ML.NET/ONNX Runtime)配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C#程序员入门AI】环境一键搭建:.NET 8+AI开发环境(Semantic Kernel/ML.NET/ONNX Runtime)配置

文章目录

      • 🚀 开篇唠两句
      • 一、先搞懂:我们要搭啥?(2026最新版)
      • 二、第一步:安装.NET 8 SDK(地基先打好)
        • 1. 下载安装(2026最新版)
        • 2. 可选:安装Visual Studio 2022(推荐)
      • 三、第二步:搭建Semantic Kernel环境(LLM开发核心)
        • 1. 创建SK项目(控制台版,最简单)
        • 2. 安装OpenAI .NET SDK(调用云端大模型)
        • 3. 安装向量库SDK(RAG必备)
        • 4. 快速测试:10行代码调用GPT-4o
      • 四、第三步:搭建ML.NET环境(传统ML开发)
        • 1. 安装ML.NET NuGet包
        • 2. 可选:安装ML.NET Model Builder(Visual Studio专用)
        • 3. 快速测试:ML.NET Hello World(鸢尾花分类)
      • 五、第四步:搭建ONNX Runtime环境(本地模型部署)
        • 1. 安装ONNX Runtime NuGet包
        • 2. 快速测试:运行ResNet50图像分类
      • 六、第五步:可选安装Ollama(本地大模型神器)
        • 1. 下载安装Ollama
        • 2. 运行本地大模型(Llama 3.2)
        • 3. C#调用Ollama(用SK)
      • 七、2026年C# AI环境避坑指南(少走弯路)
      • 🎯 结尾总结
      • 💬 互动一下

目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步。想要系统学习AI知识的朋友可以看看我的教程http://blog.csdn.net/jiangjunshow,教程通俗易懂,风趣幽默,从深度学习基础原理到各领域实战应用都有讲解。

🚀 开篇唠两句

各位C#老铁,上一篇我们画好了2026年C# AI的路线图,今天直接开干——环境一键搭建

C# AI环境搭建主打一个简单、干净、一步到位。这篇用大白话+复制粘贴级命令,带你把.NET 8 + Semantic Kernel + ML.NET + ONNX Runtime 全套AI开发环境搭好,10分钟搞定,直接开写AI代码!


一、先搞懂:我们要搭啥?(2026最新版)

一句话:一套能跑LLM、传统ML、本地模型的C# AI全能环境
核心三件套(必装):

  • .NET 8 SDK:地基,所有C# AI开发的基础
  • Semantic Kernel (SK):大模型调度神器,管LLM、RAG、Agent
  • ML.NET:C#原生机器学习库,做分类、回归、异常检测
  • ONNX Runtime:本地模型运行时,跑Llama、ResNet等预训练模型
  • Ollama(可选):本地大模型管理器,一键跑Llama 3.2、Phi-4

二、第一步:安装.NET 8 SDK(地基先打好)

1. 下载安装(2026最新版)
  • 官网下载:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
  • 选择对应系统(Windows/macOS/Linux),一路下一步即可
  • 验证安装:打开终端/CMD,输入
dotnet--version

出现8.0.x版本号,说明安装成功!

2. 可选:安装Visual Studio 2022(推荐)
  • 下载:https://visualstudio.microsoft.com/zh-hans/vs/
  • 安装时勾选.NET桌面开发ASP.NET和Web开发数据存储和处理
  • 好处:自带ML.NET Model Builder可视化工具,调试AI代码更方便

三、第二步:搭建Semantic Kernel环境(LLM开发核心)

1. 创建SK项目(控制台版,最简单)

打开终端,依次输入:

# 创建控制台项目dotnet new console-nCSharpAI_DemocdCSharpAI_Demo# 安装Semantic Kernel最新版(2026稳定版)dotnetaddpackage Microsoft.SemanticKernel--version1.15.0
2. 安装OpenAI .NET SDK(调用云端大模型)
dotnetaddpackage Azure.AI.OpenAI--version1.0.0-beta.14
3. 安装向量库SDK(RAG必备)
# Chroma(轻量本地向量库)dotnetaddpackage Microsoft.SemanticKernel.Connectors.Chroma--version1.15.0# Pinecone(云端向量库,可选)dotnetaddpackage Microsoft.SemanticKernel.Connectors.Pinecone--version1.15.0
4. 快速测试:10行代码调用GPT-4o

打开Program.cs,替换为以下代码(记得替换API Key):

usingMicrosoft.SemanticKernel;usingMicrosoft.SemanticKernel.ChatCompletion;// 1. 构建Kernelvarbuilder=Kernel.CreateBuilder();builder.AddAzureOpenAIChatCompletion("gpt-4o",// 部署名"https://xxx.openai.azure.com/",// 终结点"你的API Key"// 替换为你的Azure OpenAI Key);varkernel=builder.Build();// 2. 获取聊天服务varchat=kernel.GetRequiredService<IChatCompletionService>();varhistory=newChatHistory();history.AddUserMessage("用C#写一个Hello AI程序,2026最新版");// 3. 调用AI并输出结果varresponse=awaitchat.GetChatMessageContentAsync(history);Console.WriteLine("AI回复:"+response.Content);

运行:

dotnet run

看到AI回复,说明SK环境搭建成功!


四、第三步:搭建ML.NET环境(传统ML开发)

1. 安装ML.NET NuGet包
# 回到项目目录cdCSharpAI_Demo# 安装ML.NET核心包dotnetaddpackage Microsoft.ML--version3.0.1# 安装ML.NET自动训练工具(可选,可视化)dotnetaddpackage Microsoft.ML.AutoML--version0.21.0
2. 可选:安装ML.NET Model Builder(Visual Studio专用)
  • 打开Visual Studio → 扩展 → 管理扩展 → 搜索ML.NET Model Builder→ 安装
  • 重启VS后,右键项目 → 添加 → 机器学习,即可可视化训练模型
3. 快速测试:ML.NET Hello World(鸢尾花分类)

创建IrisData.cs

publicclassIrisData{[LoadColumn(0)]publicfloatSepalLength;[LoadColumn(1)]publicfloatSepalWidth;[LoadColumn(2)]publicfloatPetalLength;[LoadColumn(3)]publicfloatPetalWidth;[LoadColumn(4)]publicstringLabel;}publicclassIrisPrediction{[ColumnName("PredictedLabel")]publicstringPredictedSpecies;}

修改Program.cs

usingMicrosoft.ML;// 1. 创建ML上下文varmlContext=newMLContext();// 2. 加载数据(下载鸢尾花数据集:https://archive.ics.uci.edu/ml/datasets/iris)vardata=mlContext.Data.LoadFromTextFile<IrisData>("iris.data",separator:',');// 3. 划分训练集和测试集vartrainTest=mlContext.Data.TrainTestSplit(data,testFraction:0.2);// 4. 构建训练管道varpipeline=mlContext.Transforms.Conversion.MapValueToKey("Label").Append(mlContext.Transforms.Concatenate("Features","SepalLength","SepalWidth","PetalLength","PetalWidth")).Append(mlContext.MulticlassClassification.Trainers.SdcaMaximumEntropy("Label","Features")).Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel"));// 5. 训练模型varmodel=pipeline.Fit(trainTest.TrainSet);// 6. 评估模型varpredictions=model.Transform(trainTest.TestSet);varmetrics=mlContext.MulticlassClassification.Evaluate(predictions);Console.WriteLine($"准确率:{metrics.MacroAccuracy:P2}");// 7. 预测新数据varpredictor=mlContext.Model.CreatePredictionEngine<IrisData,IrisPrediction>(model);varnewFlower=newIrisData{SepalLength=5.1f,SepalWidth=3.5f,PetalLength=1.4f,PetalWidth=0.2f};varprediction=predictor.Predict(newFlower);Console.WriteLine($"预测品种:{prediction.PredictedSpecies}");

运行:

dotnet run

看到准确率和预测结果,说明ML.NET环境搭建成功!


五、第四步:搭建ONNX Runtime环境(本地模型部署)

1. 安装ONNX Runtime NuGet包
cdCSharpAI_Demo dotnetaddpackage Microsoft.ML.OnnxRuntime--version1.17.0 dotnetaddpackage Microsoft.ML.OnnxRuntime.Managed--version1.17.0
2. 快速测试:运行ResNet50图像分类
  • 下载ResNet50 ONNX模型:https://github.com/onnx/models/raw/main/vision/classification/resnet/model/resnet50-v2-7.onnx
  • 下载测试图片:https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Microsoft_.NET_logo.svg/200px-Microsoft_.NET_logo.svg.png
  • 将模型和图片放入项目根目录

创建OnnxImageClassifier.cs

usingMicrosoft.ML.OnnxRuntime;usingMicrosoft.ML.OnnxRuntime.Tensors;usingSixLabors.ImageSharp;usingSixLabors.ImageSharp.PixelFormats;usingSixLabors.ImageSharp.Processing;publicclassOnnxImageClassifier{privatereadonlyInferenceSession_session;privatereadonlystring[]_labels=File.ReadAllLines("imagenet_classes.txt");publicOnnxImageClassifier(stringmodelPath){_session=newInferenceSession(modelPath);}publicstringClassifyImage(stringimagePath){// 1. 加载并预处理图片usingvarimage=Image.Load<Rgb24>(imagePath);image.Mutate(x=>x.Resize(224,224));vartensor=newDenseTensor<float>(new[]{1,3,224,224});for(inty=0;y<224;y++){for(intx=0;x<224;x++){varpixel=image[x,y];tensor[0,0,y,x]=(pixel.R/255f-0.485f)/0.229f;tensor[0,1,y,x]=(pixel.G/255f-0.456f)/0.224f;tensor[0,2,y,x]=(pixel.B/255f-0.406f)/0.225f;}}// 2. 运行推理varinputs=newList<NamedOnnxValue>{NamedOnnxValue.CreateFromTensor("input",tensor)};usingvarresults=_session.Run(inputs);varoutput=results.First().AsTensor<float>();// 3. 获取预测结果varmaxIndex=output.ToArray().AsSpan().IndexOf(output.ToArray().Max());return_labels[maxIndex];}}

修改Program.cs

varclassifier=newOnnxImageClassifier("resnet50-v2-7.onnx");varresult=classifier.ClassifyImage("dotnet_logo.png");Console.WriteLine($"图片分类结果:{result}");

安装ImageSharp:

dotnetaddpackage SixLabors.ImageSharp--version2.1.3

运行:

dotnet run

看到分类结果,说明ONNX Runtime环境搭建成功!


六、第五步:可选安装Ollama(本地大模型神器)

1. 下载安装Ollama
  • 官网:https://ollama.com/
  • 一键安装,支持Windows/macOS/Linux
2. 运行本地大模型(Llama 3.2)
ollama run llama3.2
3. C#调用Ollama(用SK)
dotnetaddpackage Microsoft.SemanticKernel.Connectors.Ollama--version1.15.0

修改SK测试代码:

builder.AddOllamaChatCompletion("llama3.2",newUri("http://localhost:11434"));

运行,即可调用本地Llama 3.2,无需云端API!


七、2026年C# AI环境避坑指南(少走弯路)

  1. 版本统一:所有NuGet包尽量用最新稳定版,避免版本冲突
  2. 路径问题:模型、数据文件放在项目根目录,或用绝对路径
  3. 权限问题:Windows下用管理员身份运行终端,避免安装失败
  4. 网络问题:国内安装NuGet包慢,可配置镜像(https://nuget.cdn.azure.cn/v3/index.json)
  5. 本地模型:Ollama默认存C盘,可修改环境变量OLLAMA_MODELS到其他盘

🎯 结尾总结

2026年C# AI环境搭建,真的很简单

  • .NET 8:地基,10分钟装好
  • Semantic Kernel:LLM调度,1行命令安装
  • ML.NET:传统ML,原生支持,无需Python
  • ONNX Runtime:本地模型,一键运行
  • Ollama:本地大模型,隐私友好,免费好用

跟着这篇文章,复制粘贴命令,10分钟搞定全套环境,直接进入AI开发实战!


💬 互动一下

你用的是Windows/macOS/Linux?
环境搭建过程中遇到啥问题了?
评论区留言,我帮你解决!


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:39:06

AI开发者入门必看:Qwen3嵌入模型部署与调用全流程

AI开发者入门必看&#xff1a;Qwen3嵌入模型部署与调用全流程 你是不是也遇到过这些问题&#xff1a;想给自己的搜索系统加个语义理解能力&#xff0c;却卡在嵌入模型部署这一步&#xff1b;试了好几个开源方案&#xff0c;不是显存爆了就是API调不通&#xff1b;好不容易跑起…

作者头像 李华
网站建设 2026/4/23 9:38:19

保姆级教程:从0开始用PETRV2-BEV训练3D目标检测模型

保姆级教程&#xff1a;从0开始用PETRV2-BEV训练3D目标检测模型 1. 引言&#xff1a;为什么选择PETRV2-BEV&#xff1f; 在自动驾驶和智能交通系统中&#xff0c;3D目标检测是感知模块的核心任务之一。近年来&#xff0c;基于Birds Eye View&#xff08;BEV&#xff09;的视觉…

作者头像 李华
网站建设 2026/4/23 9:37:46

5个技巧让你每天节省2小时?ok-ww游戏自动化工具全解析

5个技巧让你每天节省2小时&#xff1f;ok-ww游戏自动化工具全解析 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves ok-ww游…

作者头像 李华
网站建设 2026/4/23 9:39:02

用Z-Image-Turbo做了个AI艺术项目,全过程分享

用Z-Image-Turbo做了个AI艺术项目&#xff0c;全过程分享 1. 这不是又一个“跑通demo”的教程 你可能已经看过太多“三行代码生成猫图”的演示——点开、复制、回车、截图、发朋友圈。但这次不一样。 我用Z-Image-Turbo完成了一个完整的AI艺术小项目&#xff1a;为本地独立音…

作者头像 李华
网站建设 2026/4/23 9:39:03

从源码部署到运行全流程|Supertonic极速TTS本地化实践

从源码部署到运行全流程&#xff5c;Supertonic极速TTS本地化实践 1. 为什么你需要一个真正“本地”的TTS系统&#xff1f; 你有没有遇到过这些情况&#xff1a; 给孩子读睡前故事&#xff0c;刚点开网页版TTS&#xff0c;结果卡在加载语音模型上&#xff0c;等了半分钟才出…

作者头像 李华
网站建设 2026/4/23 12:38:00

5分钟部署SAM 3:零基础实现图像视频分割的保姆级教程

5分钟部署SAM 3&#xff1a;零基础实现图像视频分割的保姆级教程 你是否还在为繁琐的手动图像标注发愁&#xff1f;是否希望一键就能精准分割图片或视频中的任意物体&#xff1f;现在&#xff0c;这一切都可以通过 SAM 3 图像和视频识别分割 镜像轻松实现。无需编程基础、不用…

作者头像 李华